A variety of rendering devices may be communicatively coupled to a computing device to provide an output for a user. For example, a computing device configured as a desktop personal computer (PC) may include a display device (e.g., a monitor) that provides an output for viewing by the user and a printer for printing images to a printable medium which may then be viewed by the user. Each rendering device, however, may support different rendering functionality, one to another, such that one provides an output that cannot be rendered as intended by utilizing another.
A graphics environment for output on a display device, for instance, may support a concept known as transparency. Transparency is used to provide a visual effect in which a graphical element that is rendered using the effect may appear to be transparent or translucent to varying degrees. For instance, a translucent object, when displayed, enables any underlying object and/or background to be seen through the translucent object to varying degrees depending on an amount of transparency that is specified for the translucent object.
Traditional printers, however, do not support transparency. For instance, for each graphical element that is to be printed to a page utilizing a traditional printer, there are a variety of different scenarios that can be encountered. In a first scenario, a pixel of the graphical element is to be drawn to a location which does not already contain a pixel. In this scenario, the pixel does not affect any other pixel and therefore can be drawn to the location. In a second scenario, a new pixel is to be drawn to a location having a preexisting pixel. In this scenario, however, traditional printing devices merely overwrite the preexisting pixel using the new pixel. Therefore, when a new graphical element that contains the new pixel is printed using a traditional printer in the second scenario, the new graphical element opaquely covers any preexisting graphical element that was previously provided for output at that location.
In a third scenario, portions of an output file that contain translucent and overlapping graphical elements for output are rasterized to form a rasterized image, such as a bitmap. A raster is a grid of individual coordinates that is used to specify a location of each individual pixel in a display. A raster image identifies each of the coordinates in the raster and a corresponding color value. Rasterizing a portion of the image file, however, introduces resolution dependency. For example, to display the rasterized image as intended, a printer should have a resolution that generally corresponds to the resolution of the rasterized image. Additionally, because each individual pixel is mapped in a rasterized image, the amount of memory used to store a raster image generally consumes more memory resources than a vector image. Vector images are created through a sequence of mathematical statements that may be utilized to place vector shapes in a two-dimensional space. Therefore, instead of using a storage location for each pixel of a line drawing, a vector image describes a series of points to be connected.
Accordingly, there is a continuing need for planar rendering such that transparency functionality may be provided in a memory efficient manner using traditional printers that would not otherwise support transparency.